Retour index

Structures de boucle

Retour niveau sup

 

Considérons le cas suivant : il s'agit d'écrire un programme en assembleur permettant de mettre en œuvre une division entière de deux entiers sur 8 bits soit à rechercher result tel que :

ou à faire croître result tant que la condition

num ≤ result.denum

 

 soit vraie. Dans le cas où result.denum > num alors le résultat n'est pas result mais result – 1.

 

La structure fonctionnel de cette application se réduit à sa plus simple expression :

 

 

 

 

 

 

 


 

 

 

 

Le modèle comportemental se déduit de la formulation précédente. Il comporte une boucle tant que qui permet de rechercher result et le test dans le cas strictement supérieure. Il vient :

 

début

result <- 0

tant que(denum.result < num)

              faire result <- result + 1

fintq

si (result.denum > num) alors result <- result – 1

finsi

fin

 

Traduction en assembleur 68K

Traduction en assembleur 8051

 

Il est possible aussi de modéliser le comportement par une boucle faire …. tant que. Dans ce cas, il vient :

 

début

result <- 0

faire       result <- result + 1

tant que (denum.result < num)

si (result.denum > num alors result <-result – 1

finsi

fin

 

Traduction en assembleur 68K

Traduction en assembleur 8051

Retour index

Suite